package com.aop.pay;

import com.aop.pay.impl.DynProxyFactory;
import com.aop.pay.impl.PayServiceImpl;
import com.aop.pay.impl.ProxyPayServiceImpl;
import com.aop.pay.impl.WechatPayServiceImpl;

/**
 * @ClassName: Test
 * @Description: TODO
 * @Date 2019/10/22 15:29
 **/
public class Test {
    public static void main(String[] args) {
        ProxyPayServiceImpl proxy = new ProxyPayServiceImpl(new PayServiceImpl());
        proxy.pay(1000);

        //创建目标对象
        WechatPayServiceImpl wps = new WechatPayServiceImpl();

        //创建动态代理处理器
        LogHandler lh = new LogHandler(wps);

        //创建动态代理对象
        IPayService proxy1 = (IPayService)DynProxyFactory.createProxy(wps, lh);
        proxy1.pay(2000);
    }
}
